1. Field of the Invention
The field of the invention pertains to a system and a method for controlling the usage of digital objects. Further, the invention extends to a system and a method for controlling the usage of digital objects in hardware and software components.
2. Description of the Related Technology
In the field of computing, components in an application are objects that (i) usually perform an isolated and specific function, (ii) include an implementation of this functionality, and (iii) include a well-defined interface that is used to interact with, and keep the implementation hidden from, the outside world. Such components exist at all levels in computing machines or systems, from the most basic hardware parts to the most sophisticated and abstract software levels.
FIG. 1 illustrates a typical model for a software component. Once a software application, such as a digital component 100 shown in FIG. 1, is compiled and linked into executable binary code, a user cannot make changes to the way the application behaves other than what has been identified and implemented by the application""s design team.
FIG. 2 depicts a simple component interaction in a digital system application 190. The application 190 has a first component 200 and a second component 202. The first component 200 has an interface 206 that is used to communicate with an interface 208 of the second component 202. It is noted that the application 190 may be composed of any number of components and that there may be any number of interactions between the components. If the application 190 is implemented in software, the operation of the software is statically set once the software source code is translated into executable code.
Therefore, users and data publishers are reliant upon the original application designers to adequately define how an application will function. However, application designers cannot always predict the ways a user of the application may want to work with the application, or the ways a publisher of data for such applications may want the application to behave when using the data. Application designers can only make an educated guess as to the answers to these questions.
Therefore, there is a need for a system and a method for controlling the usage of digital objects for statically defined applications. Moreover, there is a need for an extensible system that will provide for the control of the usage of digital objects.
The system of the present invention has several features, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this invention, certain aspects and embodiments are presented below.
One embodiment of the invention includes a method of intercepting a communication between two applications in a computer environment, the method comprising intercepting a data communication between a first application and a second application without changing the functionality of the first application and the second application, wherein the first and second applications communicate via a predefined communication channel, providing a control object capable of specifying an action depending on the data communication, and performing the action specified by the control object on a digital object created by an application.
Another embodiment of the invention includes controlling the data communications of the first and/or second applications utilizing the same method of communication interception and external control agent, thereby controlling usage of the first and/or second application.
Another embodiment of the invention includes a method of controlling the usage of a data object, including providing a set of rules regarding the permitted usage of a data object, and determining whether an action is permitted based upon the rules, and depending on the determination, performing the action.
Yet another embodiment of the invention includes a method of controlling the usage of a digital object, including providing a set of rules regarding the permitted usage of a digital object, requesting authorization from another application to perform an action related to the digital object, and depending on the authorization, performing the action.
Yet another embodiment of the invention includes a method of controlling the usage of a digital object, including providing a set of rules regarding the permitted usage of a digital object, and performing an action described by the rules. The action can include monitoring the usage of the digital object by a second application. Further, the action can be performed in substitution or in augmentation of the first action. The second action can also include filtering the action or negotiating authorization for the execution of the action.